﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace Maestro_Proveedores.Forms
{
    public partial class EvaluarProveedor : Form
    {
        /// <summary>
        /// Identificador del formulario, esta variable utilizada para controlar el acceso al formulario y para realizar la auditoria
        /// </summary>
        public static string TIPO = "112";
        /// <summary>
        /// Este registro tiene los permisos que tiene usuario que inicio sesion sobre el presente formulario (lectura, escritura, etc..)
        /// </summary>
        private Auditoria.CORPORATIVADataSet.SEG_PERMISOSRow seg_PERMRow = null;
        /// <summary>
        /// Esta variable TEMPORAL guarda el codigo de la servicio que se esta evaluando.
        /// </summary>
        private string codigoAEvaluar = string.Empty;
        /// <summary>
        /// Esta variable guarda el tipo de tranascion que se quiere evaluar (Orden de compra O contrato)
        /// </summary>
        private string tipoTransaccion = string.Empty;
        /// <summary>
        /// Esta variable guarda el indice de la pagina en la que se encuentra el usuario, ayuda a controlar el cambio de paginas.
        /// </summary>
        private int indice = 0;
        /// <summary>
        /// Esta variable verifica si se deben actualizar los criterios.
        /// </summary>
        private bool actualizarCriterios = true;
        /// <summary>
        /// Este es el formulario que se utiliza para realizar la evaluacion de desempeño a los proveedores de servicio, ademas de generar el acta re recepcion de servicios.
        /// </summary>
        public EvaluarProveedor()
        {
            InitializeComponent();
            this.indice = this.asistenteTabControl.SelectedIndex;
            this.AsistenteProgressBar.Maximum = this.asistenteTabControl.TabPages.Count;
            this.AsistenteProgressBar.Value = this.indice;
            //-- activo todas las pestañas de la tabla
            foreach (TabPage t in this.asistenteTabControl.TabPages)
                t.IsAccessible = true;
        }

        //--- objetos necesarios para interactuar con otros proyectos(MAPICS y Contratos)
        private CONTRATOS.BDCONTRATOSDataSetTableAdapters.VISTA_CONTRATOSTableAdapter vISTA_CONTRATOSTableAdapter = new CONTRATOS.BDCONTRATOSDataSetTableAdapters.VISTA_CONTRATOSTableAdapter();
        private MAPICS.MAPICSDataSetTableAdapters.INF_OCTableAdapter iNF_OCTableAdapter = new MAPICS.MAPICSDataSetTableAdapters.INF_OCTableAdapter();
        private _Maestro_Proveedores_CORPORATIVADataSetTableAdapters.PRV_PROVEEDORTableAdapter pRV_PROVEEDORTableAdapter = new _Maestro_Proveedores_CORPORATIVADataSetTableAdapters.PRV_PROVEEDORTableAdapter();
        private _Maestro_Proveedores_CORPORATIVADataSetTableAdapters.PRV_EVAL_DESMPTableAdapter pRV_EVAL_DESMPTableAdapter = new _Maestro_Proveedores_CORPORATIVADataSetTableAdapters.PRV_EVAL_DESMPTableAdapter();
        private _Maestro_Proveedores_CORPORATIVADataSetTableAdapters.PRV_DETLL_EVALTableAdapter pRV_DETLL_EVALTableAdapter = new _Maestro_Proveedores_CORPORATIVADataSetTableAdapters.PRV_DETLL_EVALTableAdapter();
        
        //--- verificar si el contrato o la orden de compra existe.
        private void BuscarButton_Click(object sender, EventArgs e)
        {
            if (this.buscarTextBox.Text.Equals(string.Empty))
                return;

            Cursor.Current = Cursors.WaitCursor;

            //--- primero verifico en la base de datos de contratos

            //-- Verifico si El contrato ha sido evaluada con anterioiridad, aqui debe mostrarse una ventana auxiliar para verificar si se desea agregar un nuevo contrato o si se desea ver los contratos anteriores.
            if (this.pRV_EVAL_DESMPTableAdapter.FillByCodigo(this.cORPORATIVADataSet.PRV_EVAL_DESMP, this.buscarTextBox.Text.Trim()) > 0)
            {
                Cursor.Current = Cursors.Default;
                //-- si retorna true, entonces continuo con la evaluacion.
                if (!this.verificarEvaluacionesAnteriores(this.buscarTextBox.Text.Trim()))
                    return;
            }
            //-- verifico que exista El registro en la base de datos del aplicativo de contratos, si existe, me traigo toda la informacion que pueda.
            if (this.vISTA_CONTRATOSTableAdapter.FillByAlias_Codigo_Contrato(this.bDCONTRATOSDataSet.VISTA_CONTRATOS, this.buscarTextBox.Text.Trim()) > 0)
            {
                //-- reiniciar toda la informacion.
                this.limpiarCampos();
                //-- traigo toda la inofrmacion que pueda desde esta BD
                this.evaluarContrato(this.bDCONTRATOSDataSet.VISTA_CONTRATOS);
                Cursor.Current = Cursors.Default;
                return;
            }
            //--- si el codigo indicado no esta en la BD de contratos, lo busco en INFOR
            //-- si el valor digitado tiene mas de 7 caracteres, se presentara un error al tratar de acceder a INFOR, por eso verifico estó.
            if (this.buscarTextBox.Text.Length > 7)
            {
                Cursor.Current = Cursors.Default;
                MessageBox.Show("Verifique el codigo digitado.");
                return;
            }
            //-- verifico que exista la orden de compra en INFOR, si existe, me traigo toda la informacion que pueda.
            if (this.iNF_OCTableAdapter.FillByCod_OC(this.mAPICSDataSet.INF_OC, this.buscarTextBox.Text.Trim()) > 0)
            {
                //-- reiniciar toda la informacion.
                this.limpiarCampos();
                //-- me traigo toda la informacion q pueda desde infor.
                this.evaluarOC(this.mAPICSDataSet.INF_OC);
                Cursor.Current = Cursors.Default;
                return;
            }
            MessageBox.Show("El codigo digitado no se encontro en el sistema.");
            Cursor.Current = Cursors.Default;
        }
        //--- evaluar una orden de compra
        private void evaluarOC(MAPICS.MAPICSDataSet.INF_OCDataTable datos)
        {
            //-- guardo el codigo en la variable temporal
            this.codigoAEvaluar = this.buscarTextBox.Text.Trim();
            this.tipoTransaccion = "Orden de compra";

            //-- obtengo la informacion del proveedor, si no encuentro el Proveedor, entonces no se puede realizar la evaluacion.
            if (this.pRV_PROVEEDORTableAdapter.FillById(this.cORPORATIVADataSet.PRV_PROVEEDOR, MAESTROS.ClassVarios.LimpiarCadena(datos[0].COD_PRV)).Equals(0))
            {
                MessageBox.Show("La empresa responsable de esta orden de compra NO SE ENCUENTRA REGISTRADA en el sistema.\nComuniquese con la persona encargada de realizar esta tarea.\n\nID del proveedor: " + datos[0].COD_PRV);
                return;
            }
            //-- obtengo la informacion de la orden de compra.
            this.idProveedorTextBox.Text = this.cORPORATIVADataSet.PRV_PROVEEDOR[0].id;
            this.EmpresaTextBox.Text = this.cORPORATIVADataSet.PRV_PROVEEDOR[0].razon_social;
            this.RepresentanteLegalTextBox.Text = this.cORPORATIVADataSet.PRV_PROVEEDOR[0].representante_legal;

            //--- paso a la siguiente pagina.
            this.siguienteButton_Click(null, null);
        }
        //--- Evaluar un contrato
        private void evaluarContrato(CONTRATOS.BDCONTRATOSDataSet.VISTA_CONTRATOSDataTable datos)
        {
            //-- guardo el codigo en la variable temporal
            this.codigoAEvaluar = this.buscarTextBox.Text.Trim();
            this.tipoTransaccion = "Contrato";

            //-- obtengo la informacion del proveedor, si no encuentro el Proveedor, entonces no se puede realizar la evaluacion.
            if (this.pRV_PROVEEDORTableAdapter.FillById(this.cORPORATIVADataSet.PRV_PROVEEDOR, datos[0].ID_PRV.Trim()).Equals(0))
            {
                MessageBox.Show("La empresa responsable de este contrato NO SE ENCUENTRA REGISTRADA en el sistema.\nComuniquese con la persona encargada de realizar esta tarea.\n\nID del proveedor: " + datos[0].ID_PRV);
                return;
            }

            //-- obtengo la informacion del contrato.
                        
            this.idProveedorTextBox.Text = this.cORPORATIVADataSet.PRV_PROVEEDOR[0].id;
            this.EmpresaTextBox.Text = this.cORPORATIVADataSet.PRV_PROVEEDOR[0].razon_social;
            this.RepresentanteLegalTextBox.Text = this.cORPORATIVADataSet.PRV_PROVEEDOR[0].representante_legal;
            if (!datos[0].IsSUPERVISORNull())
                this.supervisorTextBox.Text = datos[0].SUPERVISOR;
            this.vInicialnumericUpDown.Value=datos[0].VALOR_PESOS;
            this.fIncioDateTimePicker.Value = datos[0].FEC_INI;
            this.fTerminoDateTimePicker.Value = datos[0].FEC_FIN;
            if (!datos[0].IsPLAZONull())
                this.valorPlazoNumericUpDown.Value = decimal.Parse(datos[0].PLAZO);
            if (!datos[0].IsUND_PLAZONull())
                this.unidadPLazoComboBox.Text = datos[0].UND_PLAZO;
            if (!datos[0].IsOBJETONull())
                this.descripcionServicioTextBox.Text = datos[0].OBJETO;
            if (!datos[0].IsOBSERVACIONESNull())
                this.observacionesTextBox.Text = datos[0].OBSERVACIONES;
                         
            //--- si se esta evaluando un contrato SI muestro la pestaña de Informacion adicional.
                //this.asistenteTabControl.TabPages[2].IsAccessible = true;
            //--- paso a la siguiente pagina.
            this.siguienteButton_Click(null, null);
        }
        //--- Guardar cambios.
        private void GuardarCambiosButton_Click(object sender, EventArgs e)
        {
            if (!verificarContenido()){
                return;
            }  
            if (MessageBox.Show("Esta información no podra ser editada.\n¿Desea Guardar los cambios?", "", MessageBoxButtons.YesNo).Equals(DialogResult.No)){
                return;
            }
            //-- guardo el registro de la evaluacion
            long idEvaluacion = 0;

            try{
                //-- si es una orden de compra
                if (this.tipoTransaccion.Equals("Orden de compra"))
                    this.pRV_EVAL_DESMPTableAdapter.Insert_evaluacionOrdenCompra
                        (
                        this.idProveedorTextBox.Text,
                        this.EmpresaTextBox.Text,
                        this.RepresentanteLegalTextBox.Text,
                        this.codigoAEvaluar,
                        long.Parse(this.tipoSuministroComboBox.SelectedValue.ToString()),
                        this.tipoTransaccion,
                        this.fEvaluacionDateTimePicker.Value.Date,
                        this.direccionTextBox.Text,
                        this.proyectoTextBox.Text,
                        this.supervisorTextBox.Text,
                        this.cargoSupervisorTextBox.Text,
                        this.vInicialnumericUpDown.Value,
                        this.vFacturadoNumericUpDown.Value,
                        this.descripcionServicioTextBox.Text,
                        this.radioButton_1_si.Checked,
                        this.radioButton_2_si.Checked,
                        this.observacionesTextBox.Text,
                        Session.Seg_USUARRow.NOMBRE,
                        Session.Seg_USUARRow.CEDULA
                        );
                //-- si es un contrato
                else
                    this.pRV_EVAL_DESMPTableAdapter.Insert_evaluacionContrato
                        (
                        this.idProveedorTextBox.Text,
                        this.EmpresaTextBox.Text,
                        this.RepresentanteLegalTextBox.Text,
                        long.Parse(this.tipoSuministroComboBox.SelectedValue.ToString()),
                        this.codigoAEvaluar,
                        this.tipoTransaccion,
                        this.fEvaluacionDateTimePicker.Value.Date,
                        this.direccionTextBox.Text,
                        this.proyectoTextBox.Text,
                        this.supervisorTextBox.Text,
                        this.cargoSupervisorTextBox.Text,
                        this.vInicialnumericUpDown.Value,
                        this.vFacturadoNumericUpDown.Value,
                        this.valorPlazoNumericUpDown.Value + " " + this.unidadPLazoComboBox.Text,
                        this.descripcionServicioTextBox.Text,
                        this.radioButton_1_si.Checked,
                        this.radioButton_2_si.Checked,
                        this.observacionesTextBox.Text,
                        this.fIncioDateTimePicker.Value.Date,
                        this.fTerminoDateTimePicker.Value.Date,
                        this.vComprometidoNumericUpDown.Value,
                        this.anticipoNumericUpDown.Value,
                        Session.Seg_USUARRow.NOMBRE,
                        Session.Seg_USUARRow.CEDULA
                        );

                //-- obtengo el id del registro insertado.
                idEvaluacion = long.Parse(this.pRV_EVAL_DESMPTableAdapter.Scalar_ultimoIdInsertado(Session.Seg_USUARRow.CEDULA,this.codigoAEvaluar).ToString());
                //-- guardo la calificacion de los criterios de evaluacion

                //-- calidad
                foreach (DataGridViewRow row in this.CalidadDataGridView.Rows)
                    this.pRV_DETLL_EVALTableAdapter.Insert(idEvaluacion, "Calidad", row.Cells[0].FormattedValue.ToString(), short.Parse(row.Cells[1].FormattedValue.ToString()));
                //-- Cumplimiento
                foreach (DataGridViewRow row in this.cumplimientoDataGridView.Rows)
                    this.pRV_DETLL_EVALTableAdapter.Insert(idEvaluacion, "Cumplimiento", row.Cells[0].FormattedValue.ToString(), short.Parse(row.Cells[1].FormattedValue.ToString()));
                //-- Seguridad y medio ambiente
                foreach (DataGridViewRow row in this.seguridadYMedioAmbienteDataGridView.Rows)
                    this.pRV_DETLL_EVALTableAdapter.Insert(idEvaluacion, "Seguridad y medio ambiente", row.Cells[0].FormattedValue.ToString(), short.Parse(row.Cells[1].FormattedValue.ToString()));
                
            }catch(Exception ex)
            {
                herramientas.MessageException.show(ex);
                //-- si se presenta algun error elimino la evaluacion de la BD, la casacada de la llave foranea hara el resto.
                this.pRV_EVAL_DESMPTableAdapter.Delete_evaluacion(idEvaluacion);
                return;
            }   
            //-- me devuelvo a la pantalla inicial y limpio todos los campos
            this.indice = 0;
            this.asistenteTabControl.SelectedIndex = 0;
            this.AsistenteProgressBar.Value = 0;
            this.limpiarCampos();
            //-- pregunto si desea ver el acta de recepcion de servicios
            if (MessageBox.Show("Registro guardado con exito.\n\n¿Desea generar el acta de recepcion de servicios?", "", MessageBoxButtons.YesNo).Equals(DialogResult.Yes))
            {
                ((FormReport_EvalServicio)herramientas.Redirect.getFormulario("FormReport_EvalServicio")).mostrarReporte(idEvaluacion.ToString());
            }
        }                   
        //--- verificar si la OC o el contrato han sido evaluados anteriormente.
        private bool verificarEvaluacionesAnteriores(string codigo) 
        {
            if (MessageBox.Show("Esta Registro ha sido evaluado anteriormente. ¿Desea ver las evaluaciones anteriores?", "", MessageBoxButtons.YesNo).Equals(DialogResult.Yes))
            {
                new Forms.ListarEvaluaciones(codigo);
                return false;
            }
            
            else 
            {
                return true;
            } 
        }

        #region METODOS DE NAVEGACION
        
        //-- validar el enter.
        private void buscarTextBox_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                this.BuscarButton_Click(null, null);
            }
        }
        //-- pasar a la siguiente pagina.
        private void siguienteButton_Click(object sender, EventArgs e)
        {
            if (!this.verificarContenido()) 
            {
                return;
            }

            while (++this.indice < this.asistenteTabControl.TabPages.Count)
            {
                //-- cuando se haya terminado de diligenciar la pestaña de datos basico, procedo a llenar los dataGridViews conlos criterios que correspondan.
                if (this.indice-1 == 2 && actualizarCriterios)
                {
                    this.inicializarCriterios();
                    this.actualizarCriterios = false;
                }

                if (this.asistenteTabControl.TabPages[this.indice].IsAccessible)
                {
                    this.asistenteTabControl.SelectedIndex = this.indice;
                    this.AsistenteProgressBar.Value = this.indice;
                    break;
                }
            }
        }
        //-- volver a la pagina anterior.
        private void anteriorButton_Click(object sender, EventArgs e)
        {
            while(--this.indice >= 0)
            {   
                if (this.asistenteTabControl.TabPages[this.indice].IsAccessible)
                {   
                    this.asistenteTabControl.SelectedIndex = this.indice;
                    this.AsistenteProgressBar.Value = this.indice;
                    break;
                }
            }
        }
        //-- si el usuario intenta cambiar de pestaña sin utilizar el boton, cancelo la operacion.
        private void asistenteTabControl_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.asistenteTabControl.SelectedIndex = this.indice;
        }
        //-- si se cambia el tipo de suministro se deben actualizar los criterios
        private void tipoSuministroComboBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.actualizarCriterios = true;
        }
        //-- incializar los dataGridViews con los criterios.
        private void inicializarCriterios()
        {
            try
            {
                //--- calidad
                this.CalidadDataGridView.DataSource = this.pRV_CRITRTableAdapter.GetDataByIdTipoSuminist_NombreTipoCriterio(long.Parse(this.tipoSuministroComboBox.SelectedValue.ToString()), "Calidad");
                //--- cumplimiento
                this.cumplimientoDataGridView.DataSource = this.pRV_CRITRTableAdapter.GetDataByIdTipoSuminist_NombreTipoCriterio(long.Parse(this.tipoSuministroComboBox.SelectedValue.ToString()), "Cumplimiento");
                //--- seguridad y medio ambiente
                this.seguridadYMedioAmbienteDataGridView.DataSource = this.pRV_CRITRTableAdapter.GetDataByIdTipoSuminist_NombreTipoCriterio(long.Parse(this.tipoSuministroComboBox.SelectedValue.ToString()), "Seguridad y medio ambiente");
            }
            catch (Exception ex)
            {
                herramientas.MessageException.show(ex);
            }
        }
        //-- verificar el contenido del asistente
        private bool verificarContenido()
        {
            try
            {
                string error = string.Empty;
                //--- datos basicos
                if (this.indice.Equals(1))
                {
                    if (this.direccionTextBox.Text.Equals(string.Empty))
                    {
                        error = "Dirección";
                    }
                    else if (this.EmpresaTextBox.Text.Equals(string.Empty))
                    {
                        error = "Empresa";
                    }
                    else if (this.RepresentanteLegalTextBox.Text.Equals(string.Empty))
                    {
                        error = "Representante Legal";
                    }
                    else if (this.proyectoTextBox.Text.Equals(string.Empty))
                    {
                        error = "Proyecto";
                    }
                    else if (this.supervisorTextBox.Text.Equals(string.Empty))
                    {
                        error = "Supervisor";
                    }
                    else if (this.cargoSupervisorTextBox.Text.Equals(string.Empty))
                    {
                        error = "Cargo del supervisor";
                    }
                    else if (this.vInicialnumericUpDown.Value.Equals(0M))
                    {
                        error = "Valor Inicial";
                    }
                    else if (this.tipoSuministroComboBox.Text.Equals(string.Empty))
                    {
                        error = "Tipo de suministro";
                    }
                    else if (this.descripcionServicioTextBox.Text.Equals(string.Empty))
                    {
                        error = "Descripcion del servicio evaluado";
                    }
                }
                //--- datos adicionales (solo contratos)
                else if (this.indice.Equals(2) && this.asistenteTabControl.TabPages[2].IsAccessible)
                {
                    if (this.vComprometidoNumericUpDown.Value.Equals(null))
                    {
                        error = "Valor Comprometido a la fecha";
                    }
                    else if (this.vFacturadoNumericUpDown.Value.Equals(null))
                    {
                        error = "Valor Facturado a la fecha";
                    }
                    else if (this.anticipoNumericUpDown.Value.Equals(null))
                    {
                        error = "Anticipo";
                    }
                    else if (this.valorPlazoNumericUpDown.Text.Equals(null))
                    {
                        error = "Plazo";
                    }
                    else if (this.unidadPLazoComboBox.Text.Equals(string.Empty))
                    {
                        error = "Plazo(Unidad de medida)";
                    }
                }
                //--- CALIDAD
                else if (this.indice.Equals(3))
                {
                    //-- confirmo todo
                    this.CalidadDataGridView.EndEdit();
                    //-- verifico el contenido
                    foreach (DataGridViewRow row in this.CalidadDataGridView.Rows)
                    {
                        if (row.Cells[1].FormattedValue.ToString().Equals(string.Empty))
                        {
                            error = row.Cells[0].FormattedValue.ToString();
                            break;
                        }
                    }
                }
                //--- CUMPLIMIENTO
                else if (this.indice.Equals(4))
                {
                    //-- confirmo todo
                    this.cumplimientoDataGridView.EndEdit();
                    //-- verifico el contenido
                    foreach (DataGridViewRow row in this.cumplimientoDataGridView.Rows)
                    {
                        if (row.Cells[1].FormattedValue.ToString().Equals(string.Empty))
                        {
                            error = row.Cells[0].FormattedValue.ToString();
                            break;
                        }
                    }
                }
                //--- SEGURIDAD Y MEDIO AMBIENTE
                else if (this.indice.Equals(5))
                {
                    //-- confirmo todo
                    this.seguridadYMedioAmbienteDataGridView.EndEdit();
                    //-- verifico el contenido
                    foreach (DataGridViewRow row in this.seguridadYMedioAmbienteDataGridView.Rows)
                    {
                        if (row.Cells[1].FormattedValue.ToString().Equals(string.Empty))
                        {
                            error = row.Cells[0].FormattedValue.ToString();
                            break;
                        }
                    }
                }
                //--- FINALIZACION
                else if (this.indice.Equals(6))
                {
                    if (!this.radioButton_1_si.Checked && !this.radioButton_1_no.Checked)
                        error = "¿Se recomienda al proveedor para futuros trabajos?";
                    else if (!this.radioButton_2_si.Checked && !this.radioButton_2_no.Checked)
                        error = "¿Liberado para trámite de pago?";                    
                }

                if (error.Equals(string.Empty))
                {
                    return true;
                }
                else
                {
                    MessageBox.Show("Debe diligenciar Correctamente todos los campos obligatorios, excepcion:\n\n- " + error);
                    return false;
                }
            }
            catch (Exception ex)
            {
                herramientas.MessageException.show(ex);
            }
            return false;
        }
        //-- limpiar todos los campos y variables, esto se debe hacer cada vez que un usuario se devuelve ala primera pestaña.
        private void limpiarCampos() 
        {
            //this.fechaEvaluacionDateTimePicker.Value = DateTime.Now.Date;
            this.direccionTextBox.Text = string.Empty;
            this.EmpresaTextBox.Text = string.Empty;
            this.RepresentanteLegalTextBox.Text = string.Empty;
            this.supervisorTextBox.Text = string.Empty;
            this.cargoSupervisorTextBox.Text = string.Empty;
            this.proyectoTextBox.Text = string.Empty;
            this.descripcionServicioTextBox.Text = string.Empty;
            this.fEvaluacionDateTimePicker.Value = DateTime.Now.Date;
            this.fIncioDateTimePicker.Value = DateTime.Now.Date;
            this.fTerminoDateTimePicker.Value = DateTime.Now.Date;
            this.vComprometidoNumericUpDown.Value = 0M;
            this.vFacturadoNumericUpDown.Value = 0M;
            this.vInicialnumericUpDown.Value = 0M;
            this.anticipoNumericUpDown.Value = 0M;
            this.valorPlazoNumericUpDown.Value = 0M;
            this.unidadPLazoComboBox.Text = string.Empty;
            this.actualizarCriterios = true;
            this.observacionesTextBox.Text = string.Empty;
            this.radioButton_1_no.Checked = false;
            this.radioButton_1_si.Checked = false;
            this.radioButton_2_no.Checked = false;
            this.radioButton_2_si.Checked = false;
        }

        #endregion

        private void EvaluarProveedor_Load(object sender, EventArgs e)
        {
            // TODO: esta línea de código carga datos en la tabla 'cORPORATIVADataSet.PRV_CRITR' Puede moverla o quitarla según sea necesario.
            this.pRV_CRITRTableAdapter.Fill(this.cORPORATIVADataSet.PRV_CRITR);
            // TODO: esta línea de código carga datos en la tabla 'cORPORATIVADataSet.PRV_TIP_SUMNS' Puede moverla o quitarla según sea necesario.
            this.pRV_TIP_SUMNSTableAdapter.Fill(this.cORPORATIVADataSet.PRV_TIP_SUMNS);
        }

        private void comoSeHaceLinkLabel_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            try
            {
                //MessageBox.Show("NO HAY VIDEO");
                System.Diagnostics.Process.Start(ConfiguracionDelSistema.directorioVideoTutoriales + "evaluacion_servicios_y_contratos.wmv");
            }
            catch (Exception ex) 
            {
                herramientas.MessageException.show(ex);
            }
        }
                 
    }
}
